package com.shujia

object Code09Fun {
  def main(args: Array[String]): Unit = {
    // 匿名函数  又称为 Lambda函数
    //   没有名称的函数
    //  格式  (参数列表) => {代码块}

    println("匿名函数执行结果：", (i: Int, j: Int) => {
      i / j
    })

    // Scala中的类型可以自行推断 将匿名函数赋予给一个函数变量，进行显示调用
    val fun = (i: Int, j: Int) => {
      i / j
    }

    val fun1: (Int, Int) => Int = (i: Int, j: Int) => {
      i / j
    }
    println(1, 2, 3)
    println("匿名函数执行结果：", fun(10, 3))
    println("匿名函数执行结果：", fun1(10, 3))


    println(function1(
      (a: Int, s: String) => {
        s * a
      }
    ))

    println(function1(
      (a: Int, s: String) => {
        if (s == "*") {
          (a * a).toString
        } else {
          "传入值非 *"
        }
      }
    ))
  }

  /**
   * 需求1：对于一个 * 乘以 10 将结果的字符串进行返回
   * 需求2：如果第二个参数是 * 那么返回结果是 100
   */
  def function1(f: (Int, String) => String): String = {
    f(10, "*")
  }
}
